<?php

class User extends CI_Controller {
    
    function __construct() {
        parent::__construct();
        $this->load->model('User_model','',TRUE);
        $this->load->helper(array('form'));
    }
    
    function index() {
        $this->load->view('home_view');
    }
    
    function verifica_cadastro() {
        $this->load->library('form_validation');
        
        $this->form_validation->set_rules('nome', 'Nome', 'trim|required|xss_clean');
        $this->form_validation->set_rules('sobrenome', 'Sobrenome', 'trim|required|xss_clean');
        $this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean|valid_email|matches[conf_email]|is_unique[usuario.email]');
        $this->form_validation->set_rules('conf_email', 'Email Confirmation', 'trim|required|xss_clean|valid_email');
        $this->form_validation->set_rules('senha', 'Senha', 'trim|required|xss_clean|md5');
        
        if($this->form_validation->run() == FALSE) {
            $this->load->view('home_view');
        }
        else {            
            $this->load->helper('security');
            
            $config = Array(
                'protocol'  => 'smtp',
                'smtp_host' => 'ssl://smtp.googlemail.com',
                'smtp_port' => 465,
                'smtp_user' => 'inouefy@gmail.com',
                'smtp_pass' => 'sadfasdf',
                'mailtype'  => 'html',
                'charset'   => 'iso-8859-1'
            );
            
            $this->load->library('email', $config);
            
            $data['nome'] = $this->input->post('nome');
            $data['sobrenome'] = $this->input->post('sobrenome');
            $data['email'] = $this->input->post('email');
            $data['senha'] = $this->input->post('senha');
            $data['random_key'] = do_hash($this->input->post('email'),'md5');
            $data['validado'] = '0';
            
            $this->User_model->adiciona($data);
            
            $this->email->set_newline("\r\n");
            $this->email->from('inouefy@gmail.com','Felipe');
            $this->email->to('inouefy@gmail.com');
            $this->email->subject('Carona UnB');
            $this->email->message('Email teste - Para validar <a href="'.base_url('user/valida').'?email='.$data['email'].'&rand='.$data['random_key'].'">Clique Aqui</a>');
            
            $this->email->send();
            
            $data['mensagem'] = 'Cadastro efetuado com sucesso, lembre-se de confirmar o e-mail antes de começar a usar o Carona UnB!';
            $this->load->view('home_view',$data);
        }
        
    }
    
    function verifica_login() {
        $this->load->library('form_validation');
        
        $this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean');
        $this->form_validation->set_rules('senha', 'Senha', 'trim|required|xss_clean|callback_check_database');
        
        if($this->form_validation->run() == FALSE) {
            $this->load->view('home_view');
        }
        else {
            redirect ('carona','refresh');
        }
    }
    
    function check_database($senha) {  
        $this->load->helper('security');

        $email = $this->input->post('email');
        $md5senha = do_hash($senha, 'md5');
        
        $result = $this->User_model->login($email,$md5senha);
        
        if ($result) {
            $sess_array = array();
            foreach($result as $row) {
                $sess_array = array (
                    'id' => $row->id,
                    'nome' => $row->nome
                );
                $this->session->set_userdata('logged_in', $sess_array);
            }
            return TRUE;
        }
        else {
            $this->form_validation->set_message('check_database', 'E-mail ou senha inválidos! <br /> Lembre-se de validar seu e-mail!');
            return FALSE;
        }
    }
    
    public function valida() {
        $this->User_model->valida_user();
        $data['mensagem'] = 'Cadastro validado!';
        $this->load->view('home_view',$data);
    } 
   
}

?>